//
//  YRUserAccountTools.swift
//  新浪微博
//
//  Created by Viper on 16/6/27.
//  Copyright © 2016年 Viper. All rights reserved.
//

import UIKit

class YRUserAccountTools: NSObject {

    //路径
    let path = (NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.UserDomainMask, true).last! as NSString).stringByAppendingPathComponent("userAccount.archiver")
    //保存的用户信息对象
    var userAccount : YRUserAccount?
    
    //判断用户是否登录
    var isLogin : Bool{
        
        //如果accessToken为nil代表没有登录
        return accessToken != nil
        
    }
    //访问令牌（只读）
    var accessToken: String?{
        //代表没有登录
        if userAccount?.access_token == nil {
            
            return nil
        }else{

        //如果expires_Date于当前时间比较是降序 代表没有过期
         if userAccount?.expires_Date?.compare(NSDate()) == NSComparisonResult.OrderedDescending{
                
                return userAccount?.access_token
            }else{
                
                return nil
            }
        }
    }
    
    
    /*
     
     -isLogin
     -accessToke
     -判断用户是否登录
     -未登录
     -如果我的access_token为nil
     -如果我的access_token有值但是已过期
     -已登录
     -我的access_token有值而且没有过期
     */
    
    
    //全局访问点
    static let sharedTools : YRUserAccountTools = YRUserAccountTools()
    
    override init() {
       
        super.init()
        
        userAccount = getUserAccount()
        
    }
    
    //保存对象
    func saveUserAccount(userAccount: YRUserAccount){
        
        //如果第一次调用单例 userAccount 为nil  然后马上使用userAccount 需要我们在保存数据的时候要自己给单例对象userAccount赋值
        
        self.userAccount = userAccount
        
        NSKeyedArchiver.archiveRootObject(userAccount, toFile: path)
    
    }
    //获取对象
    
    func getUserAccount()->YRUserAccount?{
    
        //由于我们第一次获取对象的时候我们根本就没有保存 所以系统返回给我们的为nil
        let result = NSKeyedUnarchiver.unarchiveObjectWithFile(path) as? YRUserAccount
        
        return result
        
    }
    
    
    
}
